Skip to content

[#36] Farcaster mini app manifest & SDK setup#279

Merged
realproject7 merged 2 commits intomainfrom
task/36-farcaster-miniapp-setup
Mar 17, 2026
Merged

[#36] Farcaster mini app manifest & SDK setup#279
realproject7 merged 2 commits intomainfrom
task/36-farcaster-miniapp-setup

Conversation

@realproject7
Copy link
Copy Markdown
Owner

Summary

Fixes #36

  • Manifest: Added public/.well-known/farcaster.json with app metadata (name, homeUrl, splashBackgroundColor, requiredChains). accountAssociation fields are placeholder — operator must generate the domain signature via Farcaster developer tools.
  • Official wagmi connector: Installed @farcaster/miniapp-wagmi-connector and replaced the custom lib/farcaster-connector.ts with the official farcasterMiniApp() connector in wagmi config.
  • Detection utility: Extracted isFarcasterMiniApp() into lib/farcaster-detect.ts (used by ConnectWallet for auto-connect logic).
  • ConnectWallet: Updated connector type check from "farcaster" to "farcasterMiniApp" to match official package.

Existing FarcasterMiniApp component (calls sdk.actions.ready()) unchanged — already working.

Test plan

  • npm run typecheck passes
  • npm run lint passes (no new warnings)
  • /.well-known/farcaster.json is served at the correct path
  • Wallet connect works with injected connector (non-Farcaster context)
  • In Farcaster client: auto-connect via farcasterMiniApp connector works
  • sdk.actions.ready() still called on mount in mini app context
  • Operator fills accountAssociation before submitting to Farcaster directory

🤖 Generated with Claude Code

- Add public/.well-known/farcaster.json manifest (accountAssociation
  placeholder — operator must fill with domain signature)
- Install @farcaster/miniapp-wagmi-connector, replace custom connector
- Extract isFarcasterMiniApp() into lib/farcaster-detect.ts
- Update ConnectWallet to use official connector type "farcasterMiniApp"
- Remove custom lib/farcaster-connector.ts (replaced by official package)

Existing FarcasterMiniApp component (sdk.actions.ready()) unchanged.

Fixes #36

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown
Collaborator

@project7-interns project7-interns left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

T2b Review — APPROVE

Clean migration from custom Farcaster connector to official @farcaster/miniapp-wagmi-connector. Small, focused changeset.

Verified

  • Custom 137-line farcaster-connector.ts replaced by official package — correct tradeoff
  • isFarcasterMiniApp() detection preserved in new lib/farcaster-detect.ts with dynamic import (server-safe)
  • Connector type updated from "farcaster" to "farcasterMiniApp" in both auto-connect and click-connect paths in ConnectWallet.tsx
  • farcaster.json manifest structure looks correct (miniapp.version, homeUrl, requiredChains, splashBackgroundColor)
  • accountAssociation placeholder noted — operator must generate domain signature before Farcaster directory submission
  • Package lock changes are consistent with adding @farcaster/miniapp-wagmi-connector@1.1.1

No issues found

LGTM — merge-ready after T2a also approves.

Copy link
Copy Markdown
Collaborator

@project7-interns project7-interns left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verdict: REQUEST CHANGES

Summary

The SDK/connector wiring looks aligned with issue #36, but the new Farcaster manifest does not meet the documented icon requirement. As written, the manifest points iconUrl at an .ico favicon instead of a PNG app icon.

Findings

  • [medium] iconUrl uses a favicon .ico, not a PNG mini-app icon
    • File: public/.well-known/farcaster.json:9
    • Suggestion: Point iconUrl to a valid PNG asset that satisfies the Farcaster manifest requirements, or add the required PNG asset and reference that instead.

Decision

Requesting changes because the manifest is part of the acceptance criteria for issue #36, and the current iconUrl does not match Farcaster's published manifest requirements.

Switch iconUrl from favicon.ico to icon.png (Farcaster manifest
requires PNG). Add generated 200x200 PNG with PlotLink branding
(green P on dark background).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown
Collaborator

@project7-interns project7-interns left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verdict: APPROVE

Summary

The manifest issue is fixed: iconUrl now points to a PNG asset, and the required lint-and-typecheck workflow is passing. The PR now satisfies issue #36's manifest and SDK setup requirements.

Findings

  • [resolved] iconUrl now references a valid PNG app icon
    • File: public/.well-known/farcaster.json:9
    • Suggestion: None.

Decision

Approving because the only blocking issue from my prior review has been addressed and CI passed.

@realproject7 realproject7 merged commit b3ebbf8 into main Mar 17, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[P7-1] Mini App Manifest & SDK Setup

2 participants